10 SCREEN 0,0,0:COLOR 3,0:KEY OFF:DEF SEG:DEFINT A-D:DEFSTR Z
20 YSCR=0:MYSCR=0:XLIN=1:XPOS=1:ON KEY(10) GOSUB 3280
30 GOSUB 3010:GOSUB 3430:GOSUB 2120
40 XLIN=1:XPOS=1:GOSUB 3330:FSTTME=1:NOSPR=1:PLAYED=1
50 PL1=1:GOSUB 2680:GOSUB 570:GOSUB 140:GOSUB 260
60 IF INVD THEN GOSUB 2050:GOTO 50 :ELSE NOPLAY=0
70 GOSUB 1240:GOSUB 1550:YSCR=YSCR+HOLDY:PL1=0:IF PLNO=0 THEN 3590
80 GOSUB 3800:LOCATE 3,1:PRINT "One Moment Please":PRINT "I am Thinking
90 GOSUB 750:IF INVD THEN GOSUB 1320:IF EMPT THEN GOSUB 3530:GOTO 50
100 IF INVD THEN CONO=CONO+1:MY$(CONO)=NEXTBN$:GOTO 90 :ELSE NOPLAY=0
110 GOSUB 1280:GOSUB 1550:MYSCR=MYSCR+HOLDY:IF CONO=0 THEN 3590
120 COLOR 4,0:LOCATE 1,66:PRINT "Dominoes Played":COLOR 3,0
130 LOCATE 4,1:FOR A=1 TO CONO:PRINT "POINTPOINT":NEXT:GOSUB 3800:GOTO 50
140 DLN=15:DOM=40:DD=2:IF FSTTME THEN RETURN
150 DEF SEG:POKE 106,0:IF INKEY$<>"" THEN 150
160 LOCATE DLN,DOM,0:SAVE1=SCREEN(DLN,DOM):COLOR 28:PRINT CHR$(1);:COLOR 6
170 Z=INKEY$:IF Z="" THEN 170
180 IF LEN(Z)>1 THEN Z1=RIGHT$(Z,1) :ELSE Z1=""
190 IF Z="8" OR Z1="H" THEN DLN=5 :DOM=40:DD=0
200 IF Z="6" OR Z1="M" THEN DLN=10:DOM=55:DD=1
210 IF Z="2" OR Z1="P" THEN DLN=15:DOM=40:DD=2
220 IF Z="4" OR Z1="K" THEN DLN=10:DOM=25:DD=3
230 LOCATE CSRLIN,POS(0)-1:PRINT CHR$(SAVE1);
240 IF Z<>CHR$(13) THEN 160
250 LOCATE CSRLIN,POS(0)-1:PRINT CHR$(SAVE1);:RETURN
260 INVD=0:OS=0:IS=0
270 IF FSTTME THEN 560
280 IF TBL$(DD)="  " THEN 360
290 ZL=LEFT$(TBL$(DD),1):ZLP=LEFT$(YOU$(PLA),1):ZRP=RIGHT$(YOU$(PLA),1)
300 IF ZL=ZLP THEN IS=1:GOTO 330
310 IF ZL=ZRP THEN OS=1:GOTO 330
320 INVD=1:RETURN
330 INVD=0
340 IF OS THEN TBL$(DD)=ZLP+ZRP:GOTO 470
350 IF IS THEN TBL$(DD)=ZRP+ZLP:GOTO 470
360 ZL=LEFT$(TBL$(4),1):ZR=RIGHT$(TBL$(4),1)
370 ZLP=LEFT$(YOU$(PLA),1):ZRP=RIGHT$(YOU$(PLA),1)
380 IF ZL=ZR THEN 440
390 IF DD=0 THEN IF ZL=ZLP THEN IS=1:GOTO 490
400 IF DD=0 THEN IF ZL=ZRP THEN OS=1:GOTO 490
410 IF DD=2 THEN IF ZR=ZLP THEN IS=1:GOTO 490
420 IF DD=2 THEN IF ZR=ZRP THEN OS=1:GOTO 490
430 GOTO 320
440 IF ZL=ZLP THEN IS=1:GOTO 490
450 IF ZL=ZRP THEN OS=1:GOTO 490
460 GOTO 320
470 CUR$=TBL$(DD)
480 GOSUB 2330:PLNO=PLNO-1:RETURN
490 IF LEFT$(TBL$(4),1)<>RIGHT$(TBL$(A),1) THEN 540
500 IF TBL$(1)="  " AND TBL$(2)="  " AND DD=1 THEN DD=2:GOTO 540
510 IF TBL$(3)="  " AND TBL$(2)="  " AND DD=3 THEN DD=2:GOTO 540
520 IF TBL$(1)="  " AND TBL$(0)="  " AND DD=1 THEN DD=0:GOTO 540
530 IF TBL$(3)="  " AND TBL$(0)="  " AND DD=3 THEN DD=0
540 IF OS THEN TBL$(DD)=YOU$(PLA):GOTO 470
550 IF IS THEN TBL$(DD)=ZRP+ZLP:GOTO 470
560 TBL$(4)=YOU$(PLA):CUR$=TBL$(4):GOTO 480
570 GOSUB 1760
580 PLA=FIX(PLNO/2+.5!):DLN=19
590 IF PLNO AND 1 THEN DOM=40 :ELSE DOM=35
600 IF PLNO>8 THEN DOM=35:PLA=4
610 DEF SEG:POKE 106,0:IF INKEY$<>"" THEN 610
620 LOCATE DLN,DOM,0:SAVE1=SCREEN(DLN,DOM):COLOR 26:PRINT CHR$(1);:COLOR 14
630 Z=INKEY$:IF Z="" THEN 630
640 IF LEN(Z)>1 THEN Z1=RIGHT$(Z,1) :ELSE Z1=""
650 IF Z="4" OR Z1="K" THEN DOM=DOM-10:PLA=PLA-1:GOTO 690
660 IF Z="6" OR Z1="M" THEN DOM=DOM+10:PLA=PLA+1:GOTO 690
670 IF Z<>CHR$(13) THEN 630
680 LOCATE CSRLIN,POS(0)-1:PRINT CHR$(SAVE1);:RETURN
690 IF PLA=0 THEN PLA=1:DOM=DOM+10:GOTO 740
700 IF PLA>PLNO THEN PLA=PLNO:DOM=DOM-10:GOTO 740
710 IF ONEROW GOTO 740
720 IF DOM>80 THEN DOM=DOM-80:DLN=DLN+3:GOTO 740
730 IF DOM<0 THEN DOM=DOM+80:DLN=DLN-3:GOTO 740
740 LOCATE CSRLIN,POS(0)-1:PRINT CHR$(SAVE1);:GOTO 620
750 IS=0:OS=0:INVD=0:PLFG=0:HOLD=0:HH1=0:HH2=0
760 FOR DD=3 TO 0 STEP-1
770   FOR PLA=1 TO CONO
780     ZLM=LEFT$(TBL$(4),1):ZRM=RIGHT$(TBL$(4),1)
790     ZL=LEFT$(TBL$(DD),1):ZLP=LEFT$(MY$(PLA),1):ZRP=RIGHT$(MY$(PLA),1)
800     IF TBL$(DD)="  " THEN 830
810     IF ZL=ZRP THEN OS=1:GOSUB 1150:GOTO 960
820     IF ZL=ZLP THEN IS=1:GOSUB 1150:GOTO 960 :ELSE 960
830     IF ZLM<>ZRM THEN 920
840     IF ZLM=ZRP AND DD=0 THEN OS=1:GOSUB 1150:GOTO 960
850     IF ZLM=ZLP AND DD=0 THEN IS=1:GOSUB 1150:GOTO 960
860     IF ZLM=ZRP AND DD=2 THEN OS=1:GOSUB 1150:GOTO 960
870     IF ZLM=ZLP AND DD=2 THEN IS=1:GOSUB 1150:GOTO 960
880     IF ZLM=ZLP AND DD=1 THEN IS=1:GOSUB 1150:GOTO 960
890     IF ZLM=ZRP AND DD=1 THEN OS=1:GOSUB 1150:GOTO 960
900     IF ZLM=ZLP AND DD=3 THEN IS=1:GOSUB 1150:GOTO 960
910     IF ZLM=ZRP AND DD=3 THEN OS=1:GOSUB 1150:GOTO 960 :ELSE 960
920     IF ZLM=ZLP AND DD=0 THEN IS=1:GOSUB 1150:GOTO 960
930     IF ZLM=ZRP AND DD=0 THEN OS=1:GOSUB 1150:GOTO 960
940     IF ZRM=ZLP AND DD=2 THEN IS=1:GOSUB 1150:GOTO 960
950     IF ZRM=ZRP AND DD=2 THEN OS=1:GOSUB 1150:GOTO 960
960   NEXT PLA
970 NEXT DD
980 IF LEFT$(TBL$(4),1)<>RIGHT$(TBL$(4),1) THEN 1010
990 IF TBL$(1)="  " AND TBL$(2)="  " AND HH1 THEN HH2=2:GOTO 1010
1000 IF TBL$(1)="  " AND TBL$(2)="  " AND PLFG THEN DRH=2:GOTO 1010
1010 IF HH1 THEN PLA=HH1:DRH=HH2:GOTO 1040
1020 IF PLFG THEN PLA=PLFG:GOTO 1040
1030 INVD=1:RETURN
1040 ZLP1=LEFT$(MY$(PLA),1):ZRP1=RIGHT$(MY$(PLA),1)
1050 IF TBL$(DRH)<>"  " THEN 1090
1060 ZL1=LEFT$(TBL$(4),1):ZR1=RIGHT$(TBL$(4),1)
1070 IF ZL1=ZR1 THEN 1100
1080 IF DRH=2 THEN SWAP ZL1,ZR1:GOTO 1100 :ELSE 1100
1090 ZL1=LEFT$(TBL$(DRH),1):ZR1=RIGHT$(TBL$(DRH),1)
1100 IF ZL1=ZLP1 THEN IS=1:OS=0:GOTO 1120
1110 IF ZL1=ZRP1 THEN OS=1:IS=0:GOTO 1120
1120 IF IS THEN TBL$(DRH)=ZRP1+ZLP1:CUR$=TBL$(DRH):GOTO 1140
1130 IF OS THEN TBL$(DRH)=ZLP1+ZRP1:CUR$=TBL$(DRH):GOTO 1140
1140 GOSUB 2330:LOCATE 1,1:CONO=CONO-1:RETURN
1150 PLFG=PLA:DRH=DD
1160 FOR A=0 TO 4:SAV$(A)=TBL$(A):NEXT
1170 ZLP2=LEFT$(MY$(PLA),1):ZRP2=RIGHT$(MY$(PLA),1)
1180 IF IS THEN TBL$(DD)=ZRP2+ZLP2
1190 IF OS THEN TBL$(DD)=ZLP2+ZRP2
1200 GOSUB 1550
1210 IF HOLDY AND HOLD<=HOLDY THEN HOLD=HOLDY :ELSE 1230
1220 HH1=PLA:HH2=DD
1230 FOR A=0 TO 4:TBL$(A)=SAV$(A):NEXT:RETURN
1240 FOR A=1 TO PLNO
1250   IF A<PLA THEN 1270
1260   YOU$(A)=YOU$(A+1)
1270 NEXT:RETURN
1280 FOR A=1 TO CONO
1290   IF A<PLA THEN 1310
1300   MY$(A)=MY$(A+1)
1310 NEXT:RETURN
1320 IF BNPTR=29 THEN EMPT=1:RETURN
1330 NEXTBN$=BONE$(BNPTR):BNPTR=BNPTR+1:RETURN
1340 IF NOSPR THEN 1350 :ELSE RETURN
1350 IF LEFT$(TBL$(4),1)=RIGHT$(TBL$(4),1) THEN 1540
1360 FOR A=0 TO 3
1370   ZL=LEFT$(TBL$(A),1):ZR=RIGHT$(TBL$(A),1)
1380   IF TBL$(A)="  " THEN 1400
1390   IF ZL=ZR THEN 1410
1400 NEXT:RETURN
1410 IF A<>0 THEN 1450
1420 IF TBL$(2)<>"  " THEN TBL$(4)=TBL$(0):TBL$(0)="  ":GOTO 1550
1430 SWAP TBL$(2),TBL$(4):SWAP TBL$(0),TBL$(4)
1440 TBL$(2)=RIGHT$(TBL$(2),1)+LEFT$(TBL$(2),1):GOTO 1550
1450 IF A<>1 THEN 1480
1460 IF TBL$(3)<>"  " THEN TBL$(4)=TBL$(1):TBL$(1)="  ":GOTO 1550
1470 SWAP TBL$(3),TBL$(4):SWAP TBL$(1),TBL$(4):GOTO 1550
1480 IF A<>2 THEN 1510
1490 IF TBL$(0)<>"  " THEN TBL$(4)=TBL$(2):TBL$(2)="  ":GOTO 1550
1500 SWAP TBL$(0),TBL$(4):SWAP TBL$(2),TBL$(4):GOTO 1550
1510 IF A<>3 THEN RETURN
1520 IF TBL$(1)="  " THEN SWAP TBL$(1),TBL$(4):SWAP TBL$(3),TBL$(4):GOTO 1550
1530 TBL$(4)=TBL$(3):TBL$(3)="  "
1540 NOSPR=0:RETURN
1550 HOLDY=0:FLAG1=0:PTOT=0
1560  PLM=VAL(LEFT$(TBL$(4),1)):PRM=VAL(RIGHT$(TBL$(4),1))
1570  IF FSTTME THEN 1740
1580 FOR A=0 TO 3
1590  PL=VAL(LEFT$(TBL$(A),1)):PR=VAL(RIGHT$(TBL$(A),1))
1600  IF TBL$(A)="  " THEN 1630
1610  PTOT=PTOT+PL:IF PL=PR THEN PTOT=PTOT+PR
1620  GOTO 1710
1630  IF PLM<>PRM THEN 1690
1640  IF FLAG1 THEN 1710
1650  IF A=0 OR A=2 THEN PTOT=PTOT+PRM+PLM:GOTO 1680
1660  IF TBL$(1)="  " THEN PTOT=PTOT+PLM
1670  IF TBL$(3)="  " THEN PTOT=PTOT+PLM
1680  FLAG1=1:GOTO 1710
1690  IF A=0 THEN PTOT=PTOT+PLM:GOTO 1710
1700  IF A=2 THEN PTOT=PTOT+PRM:GOTO 1710
1710 NEXT A
1720 IF PTOT/5=PTOT\5 THEN 1730 :ELSE RETURN
1730 HOLDY=PTOT:RETURN
1740 A=PLM+PRM:IF A/5=A\5 THEN HOLDY=A :ELSE HOLDY=0
1750 FSTTME=0:RETURN
1760 IF FSTTME THEN RETURN
1770 C=0
1780 FOR A=0 TO 3
1790   IF TBL$(A)="  " THEN 1850 :ELSE C=C+1
1800   ZL=LEFT$(TBL$(A),1)
1810   FOR B=1 TO PLNO
1820     ZLP=LEFT$(YOU$(B),1):ZRP=RIGHT$(YOU$(B),1)
1830     IF ZL=ZLP OR ZL=ZRP THEN 2040
1840   NEXT B
1850 NEXT A
1860 IF C<4 THEN 1900
1870 GOSUB 1320:IF EMPT THEN GOSUB 3530:RETURN
1880 PLNO=PLNO+1:YOU$(PLNO)=NEXTBN$
1890 GOSUB 2680:GOTO 1770
1900 ZL=LEFT$(TBL$(4),1):ZR=RIGHT$(TBL$(4),1)
1910 IF ZL=ZR THEN 1970
1920 FOR A=1 TO PLNO
1930   ZLP=LEFT$(YOU$(A),1):ZRP=RIGHT$(YOU$(A),1)
1940   IF TBL$(0)="  " AND (ZL=ZLP OR ZL=ZRP) THEN 2040
1950   IF TBL$(2)="  " AND (ZR=ZLP OR ZR=ZRP) THEN 2040
1960 NEXT A:GOTO 1870
1970 FOR B=0 TO 3
1980   IF TBL$(B)<>"  " THEN 2030
1990   FOR A=1 TO PLNO
2000     ZLP=LEFT$(YOU$(A),1):ZRP=RIGHT$(YOU$(A),1)
2010     IF ZL=ZLP OR ZL=ZRP THEN 2040
2020   NEXT A
2030 NEXT B:GOTO 1870
2040 RETURN
2050 LOCATE 25,1:PRINT SPC79);:LOCATE 25,20
2060 PRINT "Invalid Move. Please Try Again.";:INVD=0:GOTO 2070
2070 DEF SEG:POKE 106,0:IF INKEY$<>"" THEN 2070
2080 FOR XX=1 TO 1000
2090  Z=INKEY$:IF Z<>"" THEN 2110
2100 NEXT
2110 LOCATE 25,1:PRINT SPC79);:RETURN
2120 FOR A=0 TO 6:READ DT$(A):NEXT
2130 DATA "   ","  ",". ","..",": :","::",":::"
2140 RANDOMIZE(VAL(RIGHT$(TIME$,2)))
2150 DIM PLD$(28),BONE$(28),MY$(16),YOU$(16):C=0:B=-1
2160 FOR A=1 TO 28
2170   B=B+1
2180       BONE$(A)=RIGHT$(STR$(B),1)+RIGHT$(STR$(C),1)
2190   IF B=6 THEN B=C:C=C+1
2200 NEXT
2210 FOR A=1 TO 28
2220   B=FIX(RND*28)+1:C=FIX(RND*28)+1:IF B=C THEN 2220
2230   SWAP BONE$(B),BONE$(C)
2240 NEXT
2250 FOR A=0 TO 4:TBL$(A)="  ":NEXT
2260 B=0
2270 FOR A=1 TO 13 STEP 2
2280   B=B+1
2290   YOU$(B)=BONE$(A)
2300   MY$(B)=BONE$(A+1)
2310 NEXT:PLNO=7:CONO=7:BNPTR=15
2320 RETURN
2330 CLS:GOSUB 1340:GOSUB 3330:CUR$=LEFT$(CUR$,1)+":"+RIGHT$(CUR$,1)
2340 PLD$(PLAYED)=CUR$
2350 PLAYED=PLAYED+1
2360 FOR SLOC=0 TO 3
2370   IF TBL$(SLOC)="  " THEN 2400
2380   ZL=LEFT$(TBL$(SLOC),1):ZR=RIGHT$(TBL$(SLOC),1)
2390   IF ZL<>ZR THEN GOSUB 2500 :ELSE GOSUB 2440
2400 NEXT
2410 ZL=LEFT$(TBL$(4),1):ZR=RIGHT$(TBL$(4),1)
2420 IF ZL=ZR THEN GOSUB 2490 :ELSE GOSUB 2550
2430 RETURN
2440 ON SLOC+1 GOSUB 2450,2470,2480,2460,2490:RETURN
2450 SLN=6:HS=36:LFT=VAL(ZL):RHT=VAL(ZR):GOSUB 2630:RETURN
2460 SLN=8:HS=28:TOP=VAL(ZL):BOT=VAL(ZR):GOSUB 2560:RETURN
2470 SLN=8:HS=50:TOP=VAL(ZL):BOT=VAL(ZR):GOSUB 2560:RETURN
2480 SLN=12:HS=36:LFT=VAL(ZL):RHT=VAL(ZR):GOSUB 2630:RETURN
2490 SLN=9:HS=36:LFT=VAL(ZL):RHT=VAL(ZR):GOSUB 2630:RETURN
2500 ON SLOC+1 GOSUB 2510,2530,2540,2520,2550:RETURN
2510 SLN=3:HS=38:TOP=VAL(ZR):BOT=VAL(ZL):GOSUB 2560:RETURN
2520 SLN=9:HS=26:LFT=VAL(ZR):RHT=VAL(ZL):GOSUB 2630:RETURN
2530 SLN=9:HS=46:LFT=VAL(ZL):RHT=VAL(ZR):GOSUB 2630:RETURN
2540 SLN=13:HS=38:TOP=VAL(ZL):BOT=VAL(ZR):GOSUB 2560:RETURN
2550 SLN=8:HS=38:TOP=VAL(ZR):BOT=VAL(ZL):GOSUB 2560:RETURN
2560 COLOR 6,0:LOCATE SLN+0,HS:PRINT "VARPTRSOUNDSOUNDSOUNDCOLOR"
2570 LOCATE SLN+1,HS:PRINT "CALL   CALL"
2580 LOCATE SLN+2,HS:PRINT "BLOADSOUNDSOUNDSOUNDNU"
2590 LOCATE SLN+3,HS:PRINT "CALL   CALL"
2600 LOCATE SLN+4,HS:PRINT "CLSSOUNDSOUNDSOUND'":COLOR 15,0
2610 LOCATE SLN+1,HS+1:PRINT DT$(BOT)
2620 LOCATE SLN+3,HS+1:PRINT DT$(TOP):COLOR 7,0:RETURN
2630 COLOR 6,0:LOCATE SLN+0,HS:PRINT "VARPTRSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDCOLOR"
2640 LOCATE SLN+1,HS:PRINT "CALL   CALL   CALL"
2650 LOCATE SLN+2,HS:PRINT "CLSSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUND'":COLOR 15,0
2660 LOCATE SLN+1,HS+1:PRINT DT$(RHT)
2670 LOCATE SLN+1,HS+5:PRINT DT$(LFT):COLOR 7,0:RETURN
2680 ONEROW=1
2690 LOCATE ,,0
2700 SLN=19
2710 HS=(80-(10*PLNO))\2+1
2720 IF HS<1 THEN HS=1
2730 FOR I=SLN TO 6+SLN-1
2740   LOCATE I,1:PRINT SPC79);
2750 NEXT I
2760 FOR A=1 TO PLNO:COLOR 14,0
2770   LOCATE SLN,HS:  PRINT "VARPTRSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDCOLOR";
2780   LOCATE SLN+1,HS:PRINT "CALL   CALL   CALL";
2790   LOCATE SLN+2,HS:PRINT "CLSSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUND'";
2800   HS=HS+10
2810   IF HS>80 THEN SLN=SLN+3:HS=1:ONEROW=0
2820 NEXT
2830 SLN=19
2840 HS=((80-(10*PLNO))\2)+2
2850 IF HS<1 THEN HS=2
2860 FOR A=1 TO PLNO:COLOR 15,0
2870 ON VAL(LEFT$(YOU$(A),1))+1 GOSUB 2940,2950,2960,2970,2980,2990,3000
2880   HS=HS+4
2890 ON VAL(RIGHT$(YOU$(A),1))+1 GOSUB 2940,2950,2960,2970,2980,2990,3000
2900   HS=HS+6
2910   IF HS>80 THEN SLN=SLN+3:HS=2
2920 NEXT
2930 COLOR 7,0:RETURN
2940 LOCATE SLN+1,HS:PRINT DT$(0):RETURN
2950 LOCATE SLN+1,HS:PRINT DT$(1):RETURN
2960 LOCATE SLN+1,HS:PRINT DT$(2):RETURN
2970 LOCATE SLN+1,HS:PRINT DT$(3):RETURN
2980 LOCATE SLN+1,HS:PRINT DT$(4):RETURN
2990 LOCATE SLN+1,HS:PRINT DT$(5):RETURN
3000 LOCATE SLN+1,HS:PRINT DT$(6):RETURN
3010 CLS:COLOR 6,0:GOSUB 3410
3020 LOCATE 1,1:PRINT STRING$(80,219)
3030 FOR A=2 TO 22:LOCATE A,1:PRINT "CSRLIN":LOCATE A,80:PRINT "CSRLIN":NEXT
3040 LOCATE 23,1:PRINT STRING$(80,219);
3050 LOCATE 3,33:COLOR 11,0:PRINT "D O M I N O E S
3060 COLOR 15,0:LOCATE 8,25:PRINT "Would You Like instructions? <Y/N>"
3070 GOSUB 3360:IF Z="N" THEN CLS:RETURN :ELSE IF Z<>"Y" THEN 3070
3080 COLOR 3,0:LOCATE 4,19:PRINT  "This is single spinner Dominoes,  that is you
3090 LOCATE 5,19:PRINT  "can only play in any direction off  the first
3100 LOCATE 6,19:PRINT  "spinner or double dominoe (1:1,2:2,3:3, etc).
3110 LOCATE 7,19:PRINT  "The object of the game  is to score points in
3120 LOCATE 8,19:PRINT  "multiples of  `5'  by adding the total of all
3130 LOCATE 9,19:PRINT "open ends of the playing board. You can score
3140 LOCATE 10,19:PRINT "points  only  if the game board total is five
3150 LOCATE 11,19:PRINT "or a multiple of five. You may start each new
3160 LOCATE 12,19:PRINT "hand  by playing  the  first dominoe.  If the
3170 LOCATE 13,19:PRINT "total of both ends equals  five  or  ten, you
3180 LOCATE 14,19:PRINT "score that number of points.  From that point
3190 LOCATE 15,19:PRINT "on,  you and the computer build onto the ends
3200 LOCATE 16,19:PRINT "trying to  score  points.   If no dominoe end
3210 LOCATE 17,19:PRINT "in your hand matches an open end on the board,
3220 LOCATE 18,19:PRINT "the computer will draw from the boneyard.  If
3230 LOCATE 19,19:PRINT "the boneyard is  empty,  the other player may
3240 LOCATE 20,19:PRINT "play again.  Use the Cursor Arrows and  Enter
3250 LOCATE 21,19:PRINT "Key to select and play your dominoes.
3260 LOCATE 25,25:COLOR 15,0:PRINT "Strike Any Key To Continue";
3270 Z=INKEY$:IF Z="" THEN 3270 :ELSE CLS:RETURN
3280 KEY(10) OFF:XLIN=CSRLIN:XPOS=POS(0):LOCATE 25,1:PRINT SPC79);
3290 LOCATE 25,21:PRINT "Do You Wish To Leave This Game? <Y/N>";
3300 Z=INKEY$:IF Z="" THEN 3300
3310 IF Z="y" OR Z="Y" THEN RUN"menu
3320 IF Z<>"n" AND Z<>"N" THEN 3300
3330 LOCATE 25,1:PRINT SPC79);:LOCATE 25,24:COLOR 0,7
3340 PRINT " Strike <F10> To Leave This Game ";:COLOR 7,0:LOCATE XLIN,XPOS,0
3350 KEY(10) ON:RETURN
3360 DEF SEG:POKE 106,0:IF INKEY$<>"" THEN 3360
3370 Z=INKEY$:IF Z="" THEN 3370
3380 IF Z<"a" OR Z>"z" THEN 3400
3390 Z=CHR$(ASC(Z)-32)
3400 RETURN
3410 FOR A=1 TO 9:ON KEY(A) GOSUB 3420:KEY(A) ON:NEXT
3420 RETURN
3430 CLS
3440 LOCATE 6,30:COLOR 0,7:PRINT " A ";:COLOR 3,0:PRINT" Play To 100 Points"
3450 LOCATE 8,30:COLOR 0,7:PRINT " B ";:COLOR 3,0:PRINT" Play To 250 Points"
3460 LOCATE 10,30:COLOR 0,7:PRINT " C ";:COLOR 3,0:PRINT" Play To 500 Points"
3470 COLOR 3,0:LOCATE 4,25:PRINT"Please Choose A Game <A> <B> or <C>"
3480 Z=INKEY$:IF Z="" THEN 3480
3490 IF Z="A" OR Z="a" THEN GAME=100:GOTO 3520
3500 IF Z="B" OR Z="b" THEN GAME=250:GOTO 3520
3510 IF Z="C" OR Z="c" THEN GAME=500:GOTO 3520 :ELSE 3480
3520 CLS:RETURN
3530 NOPLAY=NOPLAY+1:IF NOPLAY=2 THEN 3590
3540 LOCATE 4,1:COLOR 15,0
3550 PRINT "The Bone Yard Is Empty":IF PL1 THEN 3570
3560 PRINT "And I Have No Play":PRINT "I Lose My Turn":GOTO 3580
3570 PRINT "Sorry, You Have No Play":PRINT "So You Lose Your Turn":GOTO 3580
3580 FOR AI=1 TO 3500:NEXT:RETURN
3590 TOT=0:IF PLNO THEN IF CONO THEN 3600 :ELSE 3640
3600 FOR A=1 TO CONO
3610  TOT=TOT+VAL(LEFT$(MY$(A),1))+VAL(RIGHT$(MY$(A),1))
3620 NEXT:REMA=TOT MOD 5:TOT=TOT\5:TOT=TOT*5:IF REMA>2 THEN TOT=TOT+5
3630 YSCR=YSCR+TOT:IF PLNO THEN 3640 :ELSE 3680
3640 TOT=0:FOR A=1 TO PLNO
3650  TOT=TOT+VAL(LEFT$(YOU$(A),1))+VAL(RIGHT$(YOU$(A),1))
3660 NEXT:REMA=TOT MOD 5:TOT=TOT\5:TOT=TOT*5:IF REMA>2 THEN TOT=TOT+5
3670 MYSCR=MYSCR+TOT
3680 CLS:LOCATE 4,29:PRINT "Your Total Score Is"YSCR
3690 LOCATE 5,30:PRINT "My Total Score Is"MYSCR:IF MYSCR>=GAME AND MYSCR=YSCR THEN 3770
3700 IF YSCR>=GAME THEN IF YSCR>MYSCR THEN 3750 :ELSE 3760
3710 IF MYSCR>=GAME THEN IF YSCR<MYSCR THEN 3760 :ELSE 3750
3720 LOCATE 7,28:PRINT "One Moment Please, While
3730 LOCATE 8,28:PRINT "I Reshuffle The BoneYard
3740 C=0:B=-1:GOSUB 2160:FOR A=1 TO 4000:NEXT:CLS:GOTO 40
3750 LOCATE 6,36:PRINT "You Win":GOTO 3780
3760 LOCATE 6,37:PRINT "I Win":GOTO 3780
3770 LOCATE 6,31:PRINT "The Game Is A Tie"
3780 LOCATE 10,23:PRINT "Would You Like To Play Again? <Y/N>"
3790 GOSUB 3360:IF Z="Y" THEN RUN :ELSE IF Z="N" THEN RUN"menu" :ELSE 3790
3800 COLOR 4,0:LOCATE 1,66:PRINT "Dominoes Played":COLOR 3,0
3810 FOR A=0 TO PLAYED-1
3820   IF A<17 THEN LOCATE A+2,71:PRINT PLD$(A);
3830   IF A>16 THEN LOCATE A-14,76:PRINT PLD$(A);
3840 NEXT
3850 LOCATE 2,1:PRINT"Your Score Is"YSCR;:COLOR 7,0
3860 COLOR 2,0:LOCATE 1,1:PRINT"My Score Is"MYSCR;
3870 RETURN
